#region Imports

using System;

#endregion

namespace IEC.ColumnOrdering.SP2007.Application.Services
{

    /// <summary>
    /// Provides navigation services for SharePoint.
    /// </summary>
    public abstract class NavigationService : INavigationService
    {

        #region Methods - Instance Member

        #region Methods - Instance Member - INavigationService Members

        /// <summary>
        /// Navigates to the specified view.
        /// </summary>
        /// <param name="view">
        /// The view to which the user is to be navigated.
        /// </param>
        public abstract void NavigateToView(Uri view);

        /// <summary>
        /// Navigates to the specified view.
        /// </summary>
        /// <param name="view">
        /// The view to which the user is to be navigated.
        /// </param>
        public abstract void NavigateToView(string view);

        /// <summary>
        /// Navigates to the requesting view.
        /// </summary>
        public abstract void NavigateToRequestingView();

        /// <summary>
        /// Navigates to the error view, displaying the specified exception.
        /// </summary>
        /// <param name="exception">
        /// The exception to be displayed on the error page.
        /// </param>
        public abstract void NavigateToErrorView(Exception exception);

        /// <summary>
        /// Navigates to the error view, displaying the specified message.
        /// </summary>
        /// <param name="message">
        /// The message to be displayed on the error page.
        /// </param>
        public abstract void NavigateToErrorView(string message);

        /// <summary>
        /// Gets the source URL.
        /// </summary>
        /// <returns>
        /// The source URL
        /// </returns>
        public abstract Uri GetSourceUrl();

        #endregion

        #endregion

    }

}
